// package main

// import (
// 	"context"
// 	"fmt"
// 	"log"
// 	"testing"
// 	"time"

// 	"github.com/apache/plc4x/plc4go/protocols/s7/readwrite/model"
// 	"github.com/apache/plc4x/plc4go/spi/options"
// 	"github.com/apache/plc4x/plc4go/protocols/s7"
// )

// const plcAddress = "192.168.2.1"

// func connectPLC() *s7.Driver {
// 	driver := s7.NewDriver(options.WithTracer(nil))
// 	return driver
// }

// // 读取 DB1.DBB504 的值
// func readDB504(driver *s7.Driver) byte {
// 	ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
// 	defer cancel()

// 	request := driver.ReadRequestBuilder().
// 		AddTagAddress("db504", "DB1.DBB504").
// 		Build()

// 	result, err := request.ExecuteWithContext(ctx)
// 	if err != nil {
// 		log.Fatal("读取失败:", err)
// 	}

// 	val, _ := result.GetByte("db504")
// 	return val
// }

// // 写入 DB1.DBB504
// func writeDB504(driver *s7.Driver, value byte) {
// 	ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
// 	defer cancel()

// 	request := driver.WriteRequestBuilder().
// 		AddTagAddress("db504", "DB1.DBB504", value).
// 		Build()

// 	err := request.ExecuteWithContext(ctx)
// 	if err != nil {
// 		log.Fatal("写入失败:", err)
// 	}
// }

// // 测试：设置 DB1.DBX504.5 为 1
// func TestSetDBX504_5(t *testing.T) {
// 	driver := connectPLC()
// 	defer driver.Close()

// 	// 读取原始值
// 	original := readDB504(driver)
// 	fmt.Printf("原始 DB1.DBB504: %08b\n", original)

// 	// 置位 DB1.DBX504.5（第 5 位）
// 	newValue := original | (1 << 5)
// 	writeDB504(driver, newValue)

// 	// 再次读取
// 	updated := readDB504(driver)
// 	fmt.Printf("修改后 DB1.DBB504: %08b\n", updated)

// 	// 断言: 第 5 位应该为 1
// 	if (updated & (1 << 5)) == 0 {
// 		t.Errorf("DB1.DBX504.5 置位失败")
// 	}
// }